GIMMICK! (J) NOTES BY COMMANDO125: The size of the header ($10) is included with these notes Mapper: 69 PRG: 16 x 16KB CHR: 16 x 8KB PRG Area: 10-4000F (256 KB) CHR Area: 40010 - 60010 (128 KB) Music: E010 - 2000F Text: 3917C - 3932F ASM Adresses: 346 = Health 104 = Lives Level Data: 4 8x8 blocks arranged into a 16x16 block, these blocks tile down from the top left and work their way to the right. There are areas in the level. Each area is 192 blocks (12x16,0xC0) The areas are laid out in an 8x4 array, the first area being top left and the last area being bottom right. Each level has its own area array. Level 1: 10 - 180F Level 2: 2010 - 380F Level 3: 4010 - 580F Level 4: 6010 - 780F Level 5: 8010 - 980F Level 6: A010 - B80F Level 7: C010 - D80F Level TSA (The TSA of the blocks used to make the level): Level 1: 1810 - 1BEF (248 Blocks) Level 2: 3810 - 3BEF Level 3: 5810 - 5BEF Level 4: 7810 - 7BEF Level 5: 9810 - 9BEF Level 6: A810 - ABEF Level 7: C810 - CBEF Attribute Tables: There are 248 blocks (0 to F7), the last 8 are just there to fill up space (Use 01 for theses). The background palette of each block can range from 0 to 3, with the color second from the left being used on each palette. The four 16x16 blocks are numbered 1 to 4 from top left, top right, bottom left, bottom right. A 32x32 block is made from 4 of these blocks. A 32x32 block is one byte. The way to color the 32x32 block (one byte) is shown: 4433 2211 Level 1: 1C10 - 1D0F Level 2: 3C10 - 3D0F Level 3: 5C10 - 5D0F Level 4: 7C10 - 7D0F Level 5: 9C10 - 9D0F Level 6: AC10 - AD0F Level 7: CC10 - CDOF Level Block Main properties: The properties seem to be determined by the bit(s) in the byte: 7 6 5 4 3 2 1 0 It is at xE10 - xF0F, where x is an odd number between 1 and D Bit 7: Solid Type Bit 6: Slope properties Bit 5: Hides sprite? Bit 4: Pushes you up out of the block? Bit 3: Slows down stars? Bit 2: ? Bit 1: ? Bit 0: ? Level Block Sub properties 1: It is at xD10 - xE0F, where x is an odd number between 1 and D 00: The block will kill you 01: Normal friction 02: No friction period 03: Conveyor Belt right 04: Conveyor Belt left 05: Super Conveyor Belt right 06: Inbetween the super and regular Conveyor Belt right 07: Ice I recommend you don't use anything above 7 as it will crash the game :) Level Block Sub Properties 2: It is at xF10 to the end of the bank (200F, 400F, etc.), where x is an odd number berween 1 and D. If your block is a slope and the hypotenuse of the slope faces left, enter a 2 here, if it faces right, enter a 3, otherwise enter a 0 if it isn't a slope (If bit 5 of the block's main property byte is set, its a slope). If the value is 1, it will help you zoom across the right when your on a slope (enter it from the left and you'll kind've bounce back the other direction) Level Properties: Bit 7-0 (Each area has one byte of level properties): 00: Level 5 music, horiz scroll 01: Next music, horiz scroll 02: music, horiz scroll 03: Level 2 music, horiz scroll 04: music, horiz scroll 05: music, horiz scroll 06: Level 1 music, horiz scroll 07: Treasure music, horiz scroll 08: Boss music, horiz scroll 09: Another boss music, horiz scroll 0A: music, horiz scroll 0B: Level 3 cavern music, horiz scroll 0C: Level 6 outside music, horiz scroll 0D: Sound, horiz scroll 0E: Jumping sound, horiz scroll 0F: Landing sound, horiz scroll 10: Star charge sound, horiz scroll 11: sound, horiz scroll 12: Hurt sound, horiz scroll 13: Star shoot sound?, horiz scroll 14: Small heal sound, horiz scroll 15: sound, horiz scroll 16: Item get sound, horiz scroll 17: Star shoot sound?, horiz scroll 18: Death sound, horiz scroll 19: sound, horiz scroll 1A: Final boss music, horiz scroll 1B: Star shoot sound?, horiz scroll 1C: sound, horiz scroll 1D: water sound?, horiz scroll 1E: water death sound, horiz scroll 1F: complete and eternal silence O_o, horiz scroll 20: sound, horiz scroll 21: sound, horiz scroll 22: sound, horiz scroll 23: electric enemy shock sound, horiz scroll 24: shock sound, horiz scroll 25: sound, horiz scroll 26: sound, horiz scroll 27: cannon sound?, horiz scroll 28: sound, horiz scroll 29: green guy's jump sound, horiz scroll 2A: train sound, horiz scroll 2B: music (forgot what level), horiz scroll 2C: Overworld music, horiz scroll 2D: sound (very quiet), horiz scroll 2E: sound, horiz scroll 2F: Death sound, horiz scroll 30: Cat move sound, horiz scroll 31: Bird sound, horiz scroll 32: sound, horiz scroll 33: sound, horiz scroll 34: sound, horiz scroll 35: sound, horiz scroll 36: sound, horiz scroll 37: sound, horiz scroll 38: cannon sound?, horiz scroll 39: sound, horiz scroll 40: fire sound, horiz scroll 41 - 7F: see 0-40 for music lists, sudden horiz scroll 80 - BF: see 0-40 for music lists, no scroll C0 - FF: see 0-40 for music lists, sudden no scroll Level 1: 1BF0 - 1C0F Level 2: 3BF0 - 3C0F Level 3: 5BF0 - 5C0F Level 4: 7BF0 - 7C0F Level 5: 9BF0 - 9C0F Level 6: ABF0 - AC0F Level 7: CBF0 - CC0F Unknown: 1FF0 - 200F, $2000 increments of this. Object Data: 8 bytes per object/enemy/sprite. Each letter represents 8 horizontal rooms, from top (A) to bottom (D), respectively. Level 1A:3D186 Level 1B: 3D1F6 Level 1C: 3D25E Level 1D: 3D29E Level 2A: 3D356 Level 2B: 3D3B6 Level 2C: 3D3E6 Level 2D: 3D4AE Level 3A: 3D516 Level 3B: 3D59E Level 3C: 3D60E Level 3D: 3D68E Level 4A: 3D6D6 Level 4B: 3D776 Level 4C: 3D7F6 Level 4D: 3D896 Level 5A: 3D91E Level 5B: 3D9A6 Level 5C: 3DA3E Level 5D: 3DACE Level 6A: 3DAEE Level 6B: 3DB6E Level 6C: 3DB96 Level 6D: 3DBD3 Level 7A: 3DC4E Level 7B: 3DC9E Level 7C: 3DCDE Level 7D: 3DD3E 1st Byte: X Position (Low-Byte) (You cannot place two objects at the same X position, ever) 2nd Byte: ? 3rd Byte: Y Position (Low-Byte) 4th Byte: Startup event? (The leftmost bit seems to make the blob move down at spawn) 5th Byte: Orientation (FF for left, 00 for right) 6th Byte: Object Type 7th Byte: Special properties? (Can be 0-4, 4 makes it dissapear) 8th Byte: Position to place in SPR-RAM End: FF 00 00 00 00 00 00 00 Eight $00 go before these addresses I provided Object Type List: 00: Black blob (He can't fly) (This byte is loaded in a couple rooms) 01: Orange fish 02: Zebra fish 03: Red Fish 04: Air bubble 05: Crane 06: Jumping out Shock blob 07: Roof bomb missile 08: 1st level boss 09: Window watcher blob (Heh) 0A: Vertical Platform 0B: Horizontal Platform 0C: Wormy :) 0D: Black blob 0E: Boat 0F: Stand still black blob 10: Purple potion 11: Fire potion 12: Bomb potion 13: Orange potion 14: 2nd boss sword 15: Slow horiz platform? (2nd level) 16: Shock blob 17: Rolling cannon (also mine explosion & boss explosions) 18: Rolling cannon shooter 19: Two blob enemy 1A: Flying black blob 1B: Rolling cannon (shoots 7 at a time) 1C: Crane (goes left) 20: Jumping out cannonball? 21: Spiky turtle 22: 2nd level boss 23: Moving cannonball 24: Cannon 25: Big green guy 26: Seagull 27: Chime blob 28: wtf? 29: Big pink flying insect 2A: Gray raccoon 2B: Spider, blocks bottom of screen until dead 2C: Waterfall log 2D: Moving boulder 2E: Grey fall block 2F: Mine 30: Arrows 31: Arrow shooter 32: Leaf enemy 33: Leaf enemy's ammo 34: Grey fall block (Supposed to be stood on) 40: 3rd level boss 41: 3rd level boss fire 43: Bunny 45: Palette change 46: Water dinosaur (Until you hit him) 47: Water dinosaur's fire 48: Platform of water dinosaur (It's not the dinosaur itself) 4B: Teradactyl 4C: Spearmen blob 4D: Crown blob /w spear 4E: Indian leader Blob 4F: Archer blob 50: Horizontal arrow? 51: Flame 52: Riding ostrich 53: Crown blob (rides on ostrich) 54: Big axe thrower blob 55: Flying axes 53: Flame statue (rides on ostrich) 57: Don't know. It is used in the room before 7th boss 60: Spear trap (arrow pointing down) (Used for egg shells too) 61: Spear trap (arrow pointing up) (Used for egg shells too) 62: Spear roller (it rolls with spikes on it) 63: 4th level boss 64: 4th level boss bomb attack 65: 1st Treasure 66: 2nd Treasure 67: 3rd Treasure 68: 4th Treasure 69: 5th Treasure 6A: 6th Treasure 6B: Standing frog 6C: Chain platform (Vertical) 6D: Chain platform (Turns) 6E: Train cart 71: Enemy cart 76: Worker blob missile 77: Worker blob 78: 5th level boss (Part 1) 79: Hook that rolls on rope for 78 7A: Laser (vertical) 7B: 5th level boss missile 80: 5th level boss (Part 2) 81: 5th level boss pellets 82: Trampoline 83: Switch 84: Torcher blob? 85: Torcher blob? 86: Orange blob warrior 87: Orange blob warrior status 88: Fall in ice effect? 89: Furry (Rides on ice) 8A: White snow blob 8C: Spinning platform 8D: 6th level boss (Part 2) 8F: Hidden boss platform 90: ? A0: 6th lvl boss stream attack A2: 6th lvl boss bubble A3: Bubble animation A4: 6th lvl boss spark attack Part 1 A5: 6th lvl boss spark attack Part 2 A6: 6th lvl boss icicle attack? A7: Cat blob that can ride on a white blob A8: Pack of white birds A9: Kitty blob AA: Ant AB: White blob AC: Birdie AD: White blob that can carry a birdie AE: White blob that can carry a cat blob AF: Dark standing cat blob B0: Dark standing cat blob complete with evil eyes B1: Goes on the dragon statue's head, don't know why B2: Snail B3: Upside down snail B4: Sparkle, sparkle :) B5: 6th level boss (Part 1) C0: Probably triggers the 7th level boss, this is the last object ??C1: 7th level boss ??C2: 7th level boss bomb attack ??C3: 7th level boss wave attack ??C4: 7th level boss defeated glitter GFX PPU Slot selecting for objects: 3C78D: Object 00 3C84D: Object C0 GFX Bank selecting for objects: 3C84E: Object 00 3C90E: Object C0 Object Behavoirs: (Research later) 3C90F: Object 00 3C9CF: Object C0 Object TSA Data: Its in native OAM format http://nesdevwiki.org/index.php/NES_PPU#OAM 2224F: Black blob in the 1st level Palettes: 3ECA9 - 3F060 ~34E90 - 3506F Block Arrangement for Title Screen (Title): 36252 - 363B1 Block Arrangement for Title Screen (Moving clouds 1): 363B2 - 36491 Block Arrangement for Title Screen (Moving platform 1, it uses an extra pixel up top while scrolling): 36492 - 36591 Attribute Tables for Title, Moving clouds 1, Moving platform 1: 36592 - 365D1 Block Arrangement for Title Screen (Moving clouds 2): 365D2 - 366B1 Block Arrangement for Title Screen (Moving platform 2, uses extra pixel up top while scrolling): 366B2 - 36791 Attribute Tables for Moving clouds 2, Moving platform 2: 36792 - 367F1 Block Arrangement for World Map: 396AF - 39A2E Attribute Tables for World Map: 39A6F - 39AAE Block Arrangement for HUD: 3F1CC - 3F24A Attribute Tables for HUD: Hard-coded? Block Arrangement for Story section: For this area of addresses, there are no end bytes or X and Y coordinates, its just straight TSA data fixed onto a specific resolution of the screen. Ending: 35104 - 35253: Pointers (11 pointers per screen, the last pointer of each screen points to its attribute table) 35279 - 35318: Floating castle (Screen 2) 35359 - 353F8: Machine (Screen 3) (Screen 10) (Screen 12) 35439 - 354D8: Door (Screen 5) 35519 - 355B8: Dark room (Screen 6) 355F9 - 35698: Dark room 2 (Screen 7) 356D9 - 35778: Gimmick appears (Screen 8) 357B9 - 35858: Girl hugging Gimmick (Screen 9) 35899 - 35938: Brick room (Screen 1) (Screen 4) (Screen 11) 35979 - 35A18: Jump from explosion (Screen 13) 35A59 - 35AF8: Running (Screen 14) 35B39 - 35BD8: Jump into warp (Screen 15) 35C19 - 35CB8: Bedroom (Screen 16) 35CF9 - 35D98: Looking out window (Screen 17) 35DD9 - 35E18: Free Space!!! (Credits cover this area with alpha) 35E19 - 35EB8: Foreground of credits (The last pointer points to this address, I advise you leave it at 40 to clear it out. Two of the pointers before the last pointer point to a spot with 00 00 55 55 55 55 00 00, etc) Attribute Tables: (The last 32 bytes of each area is basically free space, the game overwrites it with blackness) 35319 - 35358: Floating castle (Screen 2) 353F9 - 35438: Machine (Screen 3) (Screen 10) (Screen 12) 354D9 - 35518: Door (Screen 5) 355B9 - 355F8: Dark room (Screen 6) 35699 - 356D8: Dark room 2 (Screen 7) 35779 - 357B8: Gimmick appears (Screen 8) 35859 - 35898: Girl hugging Gimmick (Screen 9) 35939 - 35978: Brick room (Screen 1) (Screen 4) (Screen 11) 35A19 - 35A58: Jump from explosion (Screen 13) 35AF9 - 35B38: Running (Screen 14) 35BD9 - 35C18: Jump into warp (Screen 15) 35CB9 - 35CF8: Bedroom (Screen 16) 35D99 - 35DD8: Looking out window (Screen 17) Sprite Data: Each area has $00 as an end byte since each screen has a different amount of sprites. Sprite movements, some sprite changes, and the portal are hard-coded. 34AD9 - 34B08: Pointers to these sprite data areas (Some might point to the same address) 34B09 - 34B25: This occurs last in the pointer data, probably the credits? 34B26 - 34B2E: Brick room? (Screen 1) 34B2F - 34B3B: Floating castle (Screen 2) 34B3C - 34B44: Machine (Screen 3) 34B45 - 34B4D: Machine when ball cracks (Screen 3) 34B4E - 34B6A: Door (Screen 5) 34B6B - 34BB7: Dark room (Screen 6) 34BB8 - 34C04: Dark room when girl looks up (Screen 6) 34C05 - 34C1D: Gimmick appears (Screen 8) 34C1E - 34C6A: Girl hugging Gimmick (Screen 9) 34C6B - 34C73: Machine when ball cracks again (Screen 3) 34C74 - 34CB4: Brick room (girl and gimmick run) (Screen 11) 34CB5 - 34CF1: Jump from explosion (Screen 13) 34CF2 - 34D42: Jump into warp (Screen 15) 34D43 - 34D83: Bedroom (Screen 16) 34D84 - 34DB4: Bedroom when girl and gimmick lands (Screen 16) 34DB5 - 34DFD : Looking out window (Screen 17) Beginning: 372E8 - 373AD: Pointers (11 pointers per screen, the last pointer of each screen points to its attribute table, starts on kitchen (house pointers are last in the area) 373CB - 3746A: House /w background (Screen 5) (Screen 12) 374AB - 3754A: Kitchen /w birthday (Screen 6) 3758B - 3762A: Girl opening present (Screen 7) 3766B - 3770A: Gimmick inside present (Screen 8) 3774B - 377EA: Girl is happy (Screen 9) 3782B - 378CA: Day Bedroom (Screen 10) 3790B - 379AA: Dolls in toybox (Screen 11) (Screen 14) 379EB - 37A8A: Night Bedroom (Screen 13) (Screen 15) (Screen 17) 37ACB - 37B6A: Gimmick looking up (Screen 16) Attribute Tables: (The last 32 bytes of each area is basically free space, the game overwrites it with blackness) 3746B - 374AA: House /w background (Screen 5) (Screen 12) 3754B - 3758A: Kitchen /w birthday (Screen 6) 3762B - 3766A: Girl opening present (Screen 7) 3770B - 3774A: Gimmick inside present (Screen 8) 377EB - 3782A: Girl is happy (Screen 9) 378CB - 3790A: Day Bedroom (Screen 10) 379AB - 379EA: Dolls in toybox (Screen 11) (Screen 14) 37A8B - 37ACA: Night Bedroom (Screen 13) (Screen 15) (Screen 17) 37B6B - 37BAA: Gimmick looking up (Screen 16) Sprite Data: Each area has $00 as an end byte since each screen has a different amount of sprites. Sprite movements, some sprite changes, and the portal are hard-coded. 36DAD - 36DD6: Pointers to these sprite data areas (Some might point to the same address, such as the two houses because they have no sprites) 36DD7 - 36DD7: This is one byte that is $00 because this scene has no sprites. However, they can be added to this scene if you have enough space. House /w background (Screen 5) (Screen 12) 36DD8 - 36E24: Kitchen /w birthday (Before she blows candle) (Screen 6) 36E25 - 36E71: Kitchen /w birthday (After she blows candle) (Screen 6) 36E72 - 36E9E: Girl opening present (Screen 7) 36E9F - 36EF7: Gimmick inside present (Screen 8) 36EF8 - 36F38: Girl is happy (Screen 9) 36F39 - 36F7D: Day Bedroom (Screen 10) 36F7E - 36FCA: Dolls in toybox (Screen 11) (Screen 14) 36FCB - 36EFF: Night Bedroom (Screen 13) 36FF0 - 37027: Night Bedroom when dolls appear (Screen 15) 37028 - 37030: Night Bedroom when girl dissapears (Screen 15) 37031 - 37055: Gimmick looking up (Screen 16) 37056 - 3705E: Night Bedroom before portal. This area of addresses starts with two bytes to determine where to place the starting TSA tile (2000 is the top of the first screen, remember that the top 8 and bottom 8 pixels are cut off on NTSC), then it uses standard TSA data, then it uses FF for the end byte, then the process is repeated. Another FF after the first FF ends the TSA data for that screen. Straight FF's are free space. 37BAB - 37BB2: Pointers. Screen 1, 2, 3, and 4 in that order 37BB3 - 37BD7: SUNSOFT PRESENTS (Screen 1) 37C0B - 37615: GIMMICK! (Screen 3) 37616 - 37C2B: Free Space!!! 37C2C - 37C3C: (Copyright) 1992 SUNSOFT (Screen 4) 37C3D - 37C4B: Free Space!!! 37C4C - 37C4F: Pointers? 37C50 - 37C6B: AUTHENTIC ENTERTAINMENT (Screen 2) Sound Test Data: Moving/Changing text format: Starts with two bytes to determine where to place text (2000 is top of screen), then text, then FF, etc. I think two FF's end text placing. The text is placed in a tight spot. It is at 37CD6 - 37EF0